package com.qf.pickname.spring.boot.autoconfigure.util;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;

/**
 * 采用面向对象的方式实现随机点名
 */
public class PicknameOOP {

    private String filepath;

    public PicknameOOP(String filepath) {
        this.filepath = filepath;  // 初始化 filepath
    }

    /**
     * 随机点名方法
     * @return
     */
    public String randomname() throws Exception {

        //1. 读取文本文件的内容，放入一个集合（Arraylist）中
        ArrayList<String> lines = new ArrayList<>();
        BufferedReader br = new BufferedReader(new FileReader(filepath));
        try  {
            String line;
            while ((line = br.readLine()) != null) {
                lines.add(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            br.close();
        }

        //2. 生成一个随机数，把随机数的范围控制在0~数组长度减一
        int index = 0;
        if (lines.size()>0){
            Random random = new Random();
            index= random.nextInt(lines.size());
            //3. 根据随机数下标获取List中的元素即可
            String name = lines.get(index);
            System.out.println("中奖的同学是:"+name);
            return name;
        }else {
            throw new Exception("文本文件中没有任何名字!");
        }

    }

}
